package com.event.management.backend.service;

import com.event.management.backend.dto.TicketDTO;
import com.event.management.backend.dto.TicketStatsDTO;

import java.util.List;

/**
 * 票种服务接口
 */
public interface TicketService {
    
    /**
     * 根据活动ID获取票种列表
     * @param eventId 活动ID
     * @return 票种列表
     */
    List<TicketDTO> getTicketsByEventId(Long eventId);
    
    /**
     * 添加票种
     * @param ticketDTO 票种信息
     * @return 新增的票种ID
     */
    Long addTicket(TicketDTO ticketDTO);
    
    /**
     * 更新票种
     * @param id 票种ID
     * @param ticketDTO 票种信息
     * @return 是否成功
     */
    boolean updateTicket(Long id, TicketDTO ticketDTO);
    
    /**
     * 删除票种（逻辑删除）
     * @param id 票种ID
     * @return 是否成功
     */
    boolean deleteTicket(Long id);
    
    /**
     * 获取票种销售统计数据
     * @param id 票种ID
     * @return 销售统计数据
     */
    TicketStatsDTO getTicketStats(Long id);
    
    /**
     * 检查用户是否有权限管理票种
     * @param eventId 活动ID
     * @return 是否有权限
     */
    boolean checkTicketManagePermission(Long eventId);
    
    /**
     * 根据ID获取票种信息
     * @param id 票种ID
     * @return 票种信息
     */
    TicketDTO getTicketById(Long id);
} 